<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 目标：能够利用原型对象实现方法共享（解决构造函数中浪费内存的问题）
    // 1.构造函数通过原型分配的函数是所有对象所 共享的
    // 2.JavaScript 规定，每一个构造函数都有一个 prototype 属性，指向另一个对象，所以我们也称为原型对象
    // 3.这个对象可以挂载函数，对象实例化不会多次创建原型上函数，节约内存
    // 4.我们可以把那些不变的方法，直接定义在 prototype 对象上，这样所有对象的实例就可以共享这些方法
    // 5.构造函数和原型对象中的 this 都指向 实例化的对象

    /*
    1. 原型是什么 ？  一个对象，我们也称为 prototype 为原型对象

    2. 原型的作用是什么 ？  共享方法  可以把那些不变的方法，直接定义在 prototype 对象上
    
    3. 构造函数和原型里面的this指向谁 ？  实例化的对象      
    */

    /* 总结
    1. prototype是什么？哪里来的？
    原型（原型对象）
    构造函数都自动有原型
    2. constructor属性在哪里？作用干啥的？
    prototype原型和对象原型__proto__里面都有
    都指向创建实例对象/原型的构造函数
    3. __proto__属性在哪里？指向谁？
    在实例对象里面
    指向原型 prototype */

  </script>
</body>

</html>